import 'package:json_annotation/json_annotation.dart';

import 'axis.dart';
import 'axis_pointer.dart';
import 'radius_axis.dart';

part 'angle_axis.g.dart';

@JsonSerializable(includeIfNull: false, explicitToJson: true)
class AngleAxis {
  var id;
  var polarIndex;
  var startAngle;
  var clockwise;
  var type;
  var boundaryGap;
  var min;
  var max;
  var scale;
  var splitNumber;
  var minInterval;
  var maxInterval;
  var interval;
  var logBase;
  var silent;
  var triggerEvent;
  RadiusAxisLine? axisLine;

  RadiusAxisTick? axisTick;
  MinorTick? minorTick;
  AxisLabel? axisLabel;
  SplitLine? splitLine;
  MinorSplitLine? minorSplitLine;
  List<RadiusAxisData>? data;
  SplitArea? splitArea;
  AxisPointer? axisPointer;

  var zlevel;
  var z;
  AngleAxis({
    this.id,
    this.polarIndex,
    this.startAngle,
    this.clockwise,
    this.type,
    this.boundaryGap,
    this.min,
    this.max,
    this.scale,
    this.splitNumber,
    this.minInterval,
    this.maxInterval,
    this.interval,
    this.logBase,
    this.silent,
    this.triggerEvent,
    this.axisLine,
    this.axisTick,
    this.minorTick,
    this.axisLabel,
    this.splitLine,
    this.minorSplitLine,
    this.data,
    this.splitArea,
    this.axisPointer,
    this.zlevel,
    this.z,
  });

  factory AngleAxis.fromJson(Map<String, dynamic> json) =>
      _$AngleAxisFromJson(json);

  Map<String, dynamic> toJson() => _$AngleAxisToJson(this);
}
